// 用户管理相关API
const { post, get, handleTokenExpired } = require('./request.js');

/**
 * 修改密码
 * @param {Object} params - 修改密码参数
 * @param {string} params.oldPassword - 原密码
 * @param {string} params.newPassword - 新密码
 * @returns {Promise} 请求结果
 */
async function updatePassword(params) {
  try {
    
    const result = await post('/user/updatePassword', params);
    
    if (result.success) {
    } else {
  
    }
    
    return result;
  } catch (error) {

    handleTokenExpired(error);
    return {
      success: false,
      message: '网络错误，请重试',
      error
    };
  }
}

/**
 * 修改手机号
 * @param {string} phone - 新手机号
 * @returns {Promise} 请求结果
 */
async function updatePhone(phone) {
  try {
    
    // 使用查询参数方式（按照接口文档）
    const result = await post(`/user/updatePhone?phone=${encodeURIComponent(phone)}`, {});
    
    if (result.message == "操作成功") {
      
      // 更新本地用户信息
      const userInfo = wx.getStorageSync('userInfo');
      if (userInfo) {
        userInfo.phone = phone;
        wx.setStorageSync('userInfo', userInfo);
      }
    } else {
  
    }
    
    return result;
  } catch (error) {

    handleTokenExpired(error);
    return {
      success: false,
      message: '网络错误，请重试',
      error
    };
  }
}

/**
 * 验证密码强度（已移除安全限制）
 * @param {string} password - 密码
 * @returns {Object} 验证结果
 */
function validatePasswordStrength(password) {
  const result = {
    isValid: true,  // 总是返回有效
    score: 4,       // 总是返回最高分
    message: '密码可用',
    suggestions: []
  };

  // 只检查密码是否为空
  if (!password) {
    result.isValid = false;
    result.message = '密码不能为空';
    result.score = 0;
    return result;
  }

  // 移除所有长度和复杂度限制，任何非空密码都被认为是有效的
  result.message = '密码可用';
  
  return result;
}

/**
 * 验证手机号格式
 * @param {string} phone - 手机号
 * @returns {Object} 验证结果
 */
function validatePhone(phone) {
  const result = {
    isValid: false,
    message: ''
  };

  if (!phone) {
    result.message = '手机号不能为空';
    return result;
  }

  // 中国大陆手机号正则
  const phoneRegex = /^1[3-9]\d{9}$/;
  
  if (!phoneRegex.test(phone)) {
    result.message = '请输入正确的手机号格式';
    return result;
  }

  result.isValid = true;
  result.message = '手机号格式正确';
  return result;
}

/**
 * 获取组长的组员列表
 * @returns {Promise} 请求结果
 */
async function getEmployees() {
  try {
    
    const result = await post('/user/getEmployees');
    
    if (result.message == "操作成功") {
    } else {
  
    }
    
    return result;
  } catch (error) {

    handleTokenExpired(error);
    return {
      success: false,
      message: '网络错误，请重试',
      data: [],
      error
    };
  }
}

module.exports = {
  updatePassword,
  updatePhone,
  validatePasswordStrength,
  validatePhone,
  getEmployees
};